package Test;

import java.util.Scanner;

public class Test01 {
    /*
     * 键盘录入数据
     * 需求:
     * 键盘录入自己心仪的女朋友姓名和年龄
     * 姓名的长度在3~10之间
     * 年龄的范围为18-40岁
     * 超出这个范围是异常数据不能赋值，需要重新录入，一直录到正确为止，
     * 提示:
     * 需要考虑用户在键盘录入时的所有情况，
     * 比如:录入年龄时超出范围，录入年龄时录入了abc等情况
     * */
    public static void main(String[] args) {
        //有错误
        String name;
        int age;
        while (true) {
            try {
                name = getName();
                age = getAge();
                break;
            } catch (NumberFormatException e) {
                System.err.println("年龄输入有误,请输入数字");
            } catch (RuntimeException e) {
                System.err.println("姓名长度或年龄范围有误");
            }
        }


        System.out.println(name);
        System.out.println(age);

    }

    public static String getName() {
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入姓名");
        String name = sc.nextLine();
        if (name.length() < 3 || name.length() > 10) {
            throw new RuntimeException();
        }
        return name;
    }

    public static int getAge() {
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入年龄");
        String age = sc.nextLine();
        int a = Integer.parseInt(age);
        if (a < 18 || a > 50) {
            throw new RuntimeException();
        }
        return a;
    }
}
